package com.slfx.open.api.sdk.common.exception;

/**
 * @ClassName ErrorCodeEnum
 * @Description 错误编码
 * @author slfx
 * @Date 2020年11月27日 下午2:14:33
 * @version 1.0.0
 */
public enum ErrorCodeEnum {

    // 100000-199999 为用户错误编码
	ERROR_SERVER("UM_500", "服务器内部错误."),
	
	ERROR_GATEWAY("OA_502", "网关错误。"),
	 
    ERROR_NOT_FIND_USER_BY_ID("UM_100000", "没有找到该用户"),
    // 200000-299999 为权限错误编码
    /**
     * @Field @ERROR_TOKEN_IS_EMPTY : "AG_100000", "token不能为空。"
     */
    ERROR_APP_ID_IS_EMPTY("OA_100000", "请求头：应用id不能为空。"),

    /**
     * 当前渠道未注册，请联系管理员！
     */
    ERROR_CHANNEL_IS_EMPTY("OA_100001", "当前渠道未注册，请联系管理员！"),

    /**
     * 验签失败
     */
    ERROR_SIGN_IS_ERROR("OA_100002", "验签失败！"),

    /**
     * 请求头：时间戳不能为空！
     */
    ERROR_TIME_IS_ERROR("OA_100003", "请求头：时间戳不能为空！"),

    /**
     * 签名sign不能为空
     */
    ERROR_SIGN_IS_NOT_EMPTY("OA_100004", "签名sign不能为空！"),

    /**
     * 开发者凭证key和secret不能为空
     */
    ERROR_DEVELOPER_SIGN_IS_NOT_EMPTY("OA_100005", "开发者凭证key和secret不能为空！"),

    /**
     * 开发者凭证key和secret不能为空
     */
    ERROR_DEVELOPER_NOT_EXIT("OA_100006", "开发者凭证key和secret错误！"),

    /**
     * 应用id不能为空（此处应用id为渠道表内应用id）
     */
    ERROR_APP_ID_IS_NOT_EMPTY("OA_100007", "AppId不能为空！"),

    /**
     * url请求路径不能为空
     */
    ERROR_URL_IS_NOT_EMPTY("OA_100008", "请求路径不能为空！"),


    /**
     * 时间戳不能为空
     */
    ERROR_TIME_STAMP_NOT_EMPTY("OA_100009", "时间戳不能为空！"),

    /**
     * 私钥不能为空
     */
    ERROR_PRIVATE_KEY_NOT_EMPTY("OA_100010", "私钥不能为空！"),

    /**
     * 请求requestBody格式不正确
     */
    ERROR_REQUEST_BODY_ERROR("OA_100011", "请求requestBody格式不正确！"),

    /**
     * @Field @ERROR_TOKEN_IS_EXPIRE : "AG_100003", "token失效。请重新登录。"
     */
    ERROR_TOKEN_IS_EXPIRE("AG_100003", "token失效。请重新登录。"),
    /**
     * @Field @ERROR_TOKEN : "AG_100004", "请勿篡改token信息。"
     */
    ERROR_TOKEN("AG_100004", "请勿篡改token信息。"),
    /**
     * @Field @ERROR_BTP_TOKEN : "AG_100005", "登录失败。请检查btp_token是否正确。"
     */
    ERROR_BTP_TOKEN("AG_100005", "登录失败。请检查btp_token是否正确。"),
    /**
     * @Field @ERROR_CONNECT_BTP : "AG_100006", "连接BTP平台超时。"
     */
    ERROR_CONNECT_BTP("AG_100006", "连接平台超时。"),
    /**
     * @Field @ERROR_NOT_REGISTER : "AG_100007", "该用户未注册，请联系管理员进行添加。"
     */
    ERROR_NOT_REGISTER("AG_100007", "该用户未注册，请联系管理员进行添加。"),
    
    ERROR_INVALID_REQUEST("AG_100008", "非法请求。"),
    
    ERROR_REGISTER_ACCOUNT_FORMAT("AG_100010", "账号位数为5-20个字符，区分大小写，支持字母（a-z，A-Z）、数字（0-9）及_~@#$^符号。账号需使用大写字母、小写字母、数字及特殊字符（_~@#$^）四种字符中至少两种的组合。"),
    
    ERROR_REGISTER_ACCOUNT_REPET_MOBILE("AG_100011", "手机号已被占用。"),
    ERROR_REGISTER_ACCOUNT_PASSWORD_DIFF("AG_100012", "两次输入密码不一致。"),
    ERROR_REGISTER_ACCOUNT_PASSWORD("AG_100013", "密码不能与用户名重名。密码位数为8-16个字符，且区分大小写，支持字母（a-z，A-Z）、数字（0-9）及_~@#$^符号。密码需使用大写字母、小写字母、数字及特殊字符（_~@#$^）四种字符中至少三种的组合。。"),
    ERROR_REGISTER_ACCOUNT_SENDER_MSG("AG_100014", "发送手机验证码失败。"),
    ERROR_REGISTER_ACCOUNT_NAME_EMPTY("AG_100015", "用户名不能为空。"),
    ERROR_REGISTER_ACCOUNT_EMAIL_EMPTY("AG_100016", "Email不能为空。"),
    ERROR_REGISTER_ACCOUNT("AG_100017", "发送手机验证码失败。"),
    ERROR_REGISTER_ACCOUNT_PHONE_CODE("AG_100018", "手机验证码验证失败。"),
    ERROR_LOGIN_VERIFY_CODE("AG_100019", "手机验证码已发送，请三分钟后再试!。"),
    ERROR_PHONE_NOT_NULL("AG_100020", "手机号码不能为空！"),
    ERROR_PHONE_REPEAT("AG_100021", "手机号码重复！"),
    ERROR_PHONE_VERIFY_NOT_NULL("AG_100021", "手机验证码不能为空！"),
    ERROR_REGISTER_ACCOUNT_TOO_MUCH("AG_100009", "操作过于频繁。"),
    ERROR_ACCOUNT_NOT_NULL("AG_100010", "账号不能为空。"),
    ERROR_PASSWORD_NOT_NULL("AG_100011", "密码不能为空。"),
    ERROR_PASSWORD_ERROR("AG_100012", "密码错误。"),
    /**
     * @Field @ERROR_BUS_SYS_CODE_NOT_NULL :"AG_100013", "bus_sys_code不能为空！"
     */
    ERROR_BUS_SYS_CODE_NOT_NULL("AG_100013", "bus_sys_code不能为空！"),
    /**
     * @Field ERROR_APP_ERR :"AG_100014", "应用错误"
     */
    ERROR_APP_ERR("AG_100014", "应用错误！"),

    /**
     * @Field @ERROR_PHONE_NUM_ERROR : "AG_100011", "手机格式不正确！"
     */
    ERROR_PHONE_NUM_ERROR("UG_100021", "手机格式不正确！"),
    ERROR_REGISTER_ACCOUNT_IS_EXIT("UG_100022", "账号已存在！"),

    ;
	
	
	

    /**
     * @Field @code : UM为 User Management的首字母,100001代表错误编号
     */
    private String code;
    /**
     * @Field @msg : 为错误的中文释义
     */
    private String msg;

    private ErrorCodeEnum(String code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public String getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

}
